Maintaining communication continuity

ABSTRACT

A plurality of communication channels are monitored to detect a failed communication channel. In response to detecting the failed communication channel, failover instructions are generated concerning an alternative communication channel. The failover instructions are provided to one or more client electronic devices.

BACKGROUND OF THE INVENTION

This disclosure relates to messaging systems, and more particularly tomaintaining communication continuity in messaging systems.

Communications systems, such as email and instant messaging, areconsidered to be mission critical by many corporations. That is, the useand availability of such communications systems are deemed to beessential for the effective operation of the company. Given theimportance of these mission critical systems, companies often devotesignificant resources to developing and implementing various plans,protections, and measures to ensure that the important communicationssystems remain up and running, with the goal being 100% (i.e.,continuous) up time and availability of services.

For example, often redundant servers may be used for a givencommunication system, such as email. In the event of a failure in oneserver, the redundant server may be employed to ensure and maintain theavailability of the email system. Additionally, the redundant serversmay be geographically distributed. In the event of a power failure, suchas a city-wide power failure, while one server may be affected, thegeographically distributed servers may continue to operate. Theunaffected email servers may assume the responsibility of maintainingemail communications for the company until the power failure isovercome.

Further, separate servers may be used for different communicationssystems. An email system may be deployed on a first server, while aninstant messaging system may be deployed on a second server. In theevent of a failure of one server, such as an email server, the instantmessaging server may continue to operate. The hope is that, even thoughemail communications may be interrupted as a result of the failure ofthe email system, at least instant messaging communications may remainavailable.

While the various protections and measures implemented to ensurecontinuous operation of mission critical systems may be largelyeffective, failures and losses still occur. Additionally, even thoughalternative communication systems may be available (e.g., instantmessaging may be used in the event of an email failure), the alternativesystems may be less desirable. The ability to utilize alternativecommunications systems in the event of a failure in one communicationsystem requires the availability of the alternative system, and anawareness by each party to the communication that one of thecommunication systems has failed.

BRIEF SUMMARY OF THE INVENTION

In a first implementation, a method includes monitoring a plurality ofcommunication channels to detect a failed communication channel. Inresponse to detecting the failed communication channel, failoverinstructions are generated concerning an alternative communicationchannel. The failover instructions are provided to one or more clientelectronic devices.

According to a second implementation, a computer program product resideson a computer readable medium having a plurality of instructions storedon it. When executed by a processor, the instructions cause theprocessor to perform operations including monitoring a plurality ofcommunication channels to detect a failed communication channel. Inresponse to detecting the failed communication channel, the instructionscause the process to generate failover instructions concerning analternative communication channel. The failover instructions areprovided to one or more client electronic devices.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagrammatic view of a continuity process, a firstcommunication application, and second communication application coupledto a distributed computing network.

FIG. 2 is a diagrammatic view of a display screen rendered by the firstcommunication application and/or the continuity process of FIG. 1.

FIG. 3 is a flowchart of a process that may be performed by thecontinuity process of FIG. 1.

FIG. 4 diagrammatically depicts an email message generated by thecontinuity process and/or second communication application of FIG. 1.

FIG. 5 is a diagrammatic view of a display screen rendered by the firstcommunication application and/or the continuity process of FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

As will be appreciated by one skilled in the art, the present inventionmay be embodied as a method, system, or computer program product.Accordingly, the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,the present invention may take the form of a computer program product ona computer-usable storage medium having computer-usable program codeembodied in the medium.

Any suitable computer usable or computer readable medium may beutilized. The computer-usable or computer-readable medium may be, forexample but not limited to, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, ordevice. More specific examples (a non-exhaustive list) of thecomputer-readable medium would include the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a portable compact disc read-only memory (CD-ROM), anoptical storage device, or a magnetic storage device. Note that thecomputer-usable or computer-readable medium could even be paper oranother suitable medium upon which the program is printed, as theprogram can be electronically captured, via, for instance, opticalscanning of the paper or other medium, then compiled, interpreted, orotherwise processed in a suitable manner, if necessary, and then storedin a computer memory. In the context of this document, a computer-usableor computer-readable medium may be any medium that can contain, store,or transport the program for use by or in connection with theinstruction execution system, apparatus, or device. The computer usableprogram code may be transmitted using any appropriate medium, includingbut not limited to the Internet, wireline, optical fiber cable, RF, etc.

Computer program code for carrying out operations of the presentinvention may be written in an object oriented programming language suchas Java, Smalltalk, C++ or the like. However, the computer program codefor carrying out operations of the present invention may also be writtenin conventional procedural programming languages, such as the “C”programming language or similar programming languages. The program codemay execute entirely on the user's computer, partly on the user'scomputer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The present invention is described below with reference to flowchartillustrations and/or block diagrams of methods, apparatus (systems) andcomputer program products according to embodiments of the invention. Itwill be understood that each block of the flowchart illustrations and/orblock diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, can be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide steps for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

Referring to FIG. 1, there is shown a continuity process. As will bediscussed in greater detail below, the continuity process may monitor aplurality of communication channels to detect a failed communicationchannel. In response to detecting the failed communication channel,failover instructions may be generated concerning an alternativecommunication channel. The failover instructions may be provided to oneor more client electronic devices.

The continuity process may be a server-side process (e.g., server-sidecontinuity process 10, or server-side continuity process 12), aclient-side process (e.g., client-side continuity process 14,client-side continuity process 16, or client-side continuity process18), or a hybrid server-side/client-side process (e.g., the combinationof one or more of server-side continuity process 10, 12 and one or moreof client-side continuity process 14, 16, 18).

Server-side continuity processes 10, 12 may reside on and may beexecuted by server computers 20, 22 (respectively), which may beconnected to networks 24, 26 (e.g., the Internet, a local area network,or a wide area network). Examples of server computers 20, 22 mayinclude, but are not limited to: a personal computer, a server computer,a series of server computers, a mini computer, and a mainframe computer.Server computers 20, 22 may each be a web server (or a series ofservers) running a network operating system, examples of which mayinclude but are not limited to: Microsoft® Windows® XP Server; Novell®NetWare®; or Redhat® Linux®, for example (Microsoft and Windows areregistered trademarks of Microsoft Corporation in the United States,other countries or both; Novell and NetWare are registered trademarks ofNovell Corporation in the United States, other countries or both; Redhatis a registered trademark of RedHat Corporation in the United States,other countries or both; and Linux is a registered trademark of LinusTorvales in the United States, other countries or both), for example.

The instruction sets and subroutines of server-side continuity processes10, 12, which may be stored on storage devices 28, 30 (respectively)coupled to server computers 20, 22, may be executed by one or moreprocessors (not shown) and one or more memory architectures (not shown)incorporated into server computers 20, 22. Storage devices 28, 30 mayinclude but are not limited to: a hard disk drive; a tape drive; anoptical drive; a RAID array; a random access memory (RAM); and aread-only memory (ROM).

Server computers 20, 22 may execute a web server application, examplesof which may include but are not limited to: Microsoft IIS, NovellWebserver, or Apache Webserver, that allows for HTTP (i.e., HyperTextTransfer Protocol) access to server computers 20, 22 via network 24and/or 26. Network 22 may be connected to network 26. Further networks22, 26 may be connected to one or more secondary networks (not shown),examples of which may include but are not limited to: a local areanetwork; a wide area network; or an intranet, for example.

Client-side continuity processes 14, 16, 18 may reside on and may beexecuted by client electronic devices 32, 34, 36 (respectively),examples of which may include, but are not limited to, personal computer32, notebook computer 34, personal digital assistant 36, a data-enabledcellular phone (not shown), and the like. Client electronic devices 32,34, 36 may each be coupled to network 24 and/or network 26 and may eachexecute an operating system, examples of which may include, but are notlimited to, Microsoft Windows, Microsoft Windows CE, Redhat Linux, or acustom operating system.

The instruction sets and subroutines of client-side continuity processes14, 16, 18, which may be stored on storage devices 38, 40, 42(respectively), may be executed by one or more processors (not shown)and one or more memory architectures (not shown) incorporated intoclient electronic devices 32, 34, 36 (respectively). Storage devices 38,40, 42 may include but are not limited to: hard disk drives; tapedrives; optical drives; RAID arrays; random access memories (RAM);read-only memories (ROM), compact flash (CF) storage devices, securedigital (SD) storage devices, and memory stick storage devices.

In addition to server-side continuity processes 10, 12, server computers20, 22 may each execute a communication server application (e.g., firstcommunication server application 44, and second communication serverapplication 46), examples of which may include, but are not limited to,an email server application (e.g., IBM® Lotus® Domino® Server andMicrosoft Exchange® Server), an instant messaging server application(e.g., Lotus Sametime®, Microsoft Office Live Communications Server,Jabber XCP™, and AOL® Instant Messenger®), a paging server application(e.g., Air Messenger LAN Server, by Internet Software Solutions), andshort messaging service server application (e.g., Microsoft ISA Server),or the like. First communication server application 44 and/or secondcommunication server application 46 may allow users 48, 50, 52 tocommunicate with one another (e.g., exchange email messages, instantmessage, text messages, and the like) via communication clientapplications (e.g., first communication client applications 54, 56, 58and second communication client applications 60, 62, 64), examples ofwhich may include, but are not limited to, email client applications(e.g., Lotus Notes and Microsoft Outlook), instant messagingapplications (e.g., AOL Instant Messenger, IBM Lotus Sametime, Google®Talk), or the like.

If the continuity process is configured as a server-side continuityprocess, server side continuity processes 10, 12 may be a stand aloneapplication that interface with one or more communication serverapplications (e.g., with first communication server application 44and/or second communication server application 46) or may be anapplet/application that is executed within one or more communicationserver applications. Additionally, while first communication serverapplication 44 and second communication server application 46 are shownresiding on separate server computers 20, 22, the first and secondcommunication server application may reside on, and be executed by, asingle server computer. In that case, a single server-side continuityprocess may reside on the single server computer and may interface withone or more of the first and the second communication serverapplications. Further, in the case in which the first and the secondcommunication server application reside on a single server computer, aserver-side continuity process may be an applet/application that isexecuted within one or more of the first and the second communicationserver applications.

If the continuity process is configured as a client-side continuityprocess, client-side continuity processes 14, 16, 18 may be stand aloneapplications that interface with one or more of first communicationclient applications 54, 56, 58 and second communication clientapplications 60, 62, 64. Further, client-side continuity processes 14,16, 18 may be applets/applications that are executed within one or moreof first communication client applications 54, 56, 58 and secondcommunication client applications 60, 62, 64.

The instruction sets and subroutines of first communication serverapplication 44 and second communication server application 46, which maybe stored on storage devices 28, 30 (respectively) coupled to servercomputers 20, 22 (respectively) may be executed by one or moreprocessors (not shown) and one or more memory architectures (not shown)incorporated within server computers 20, 22.

The instruction sets and subroutines of first communication clientapplications 54, 56, 58 and second communication client application 60,62, 64, which may be stored on storage devices 38, 40, 42 (respectively)coupled to client electronic devices 32, 34, 36 (respectively), may beexecuted by one or more processors (not shown) and one or more memoryarchitectures (not shown) incorporated into client electronic devices32, 34, 36 (respectively). Using first communication client applications54, 56, 58 and/or second communication client applications 60, 62, 64,users 48, 50, 52 may access one or more of first communication serverapplication 44 and second communication server application 46(respectively) and may allow users 48, 50, 52 to communicate with oneanother, e.g., via email messages, instant messages, text messages, andthe like.

Users 48, 50, 52 may access one or more of first communication serverapplication 44 and second communication server application 46 directlythrough the device on which the communication client applications (e.g.,first communication client applications 54, 56, 58 and secondcommunication client application 60, 62, 64) is executed, namely clientelectronic devices 32, 34, 36, for example. Users 48, 50, 52 may accessone or more of first communication server application 44 and secondcommunication server application 46 directly through network 24 orthrough network 26. Further, server computers 20, 22 (i.e., thecomputers that execute first communication server application 44 andsecond communication server application 46) may be connected to network24 through network 26, as illustrated with phantom link line 64.

The various client electronic devices may be directly or indirectlycoupled to network 24 (or network 26). For example, personal computer 32is shown directly coupled to network 24 via a hardwired networkconnection. Further, notebook computer 34 is shown wirelessly coupled tonetwork 24 via wireless communication channel 66 established betweennotebook computer 34 and wireless access point (i.e., WAP) 68, which isshown directly coupled to network 24. WAP 68 may be, for example, anIEEE 802.11a, 802.11b, 802.11g, Wi-Fi, and/or Bluetooth device that iscapable of establishing wireless communication channel 66 betweennotebook computer 34 and WAP 68. Personal digital assistant 36 is shownwirelessly coupled to network 24 via wireless communication channel 70established between personal digital assistant 36 and cellularnetwork/bridge 72, which is shown directly coupled to network 24.

As is known in the art, all of the IEEE 802.11x specifications may useEthernet protocol and carrier sense multiple access with collisionavoidance (i.e., CSMA/CA) for path sharing. The various 802.11xspecifications may use phase-shift keying (i.e., PSK) modulation orcomplementary code keying (i.e., CCK) modulation, for example. As isknown in the art, Bluetooth is a telecommunications industryspecification that allows e.g., mobile phones, computers, and personaldigital assistants to be interconnected using a short-range wirelessconnection.

For the following discussion, server side continuity processes 10 isgoing to be described for illustrative purposes. However, this is notintended to be a limitation of this disclosure, as other configurationsmay be equally utilized, examples of which may include client-sidecontinuity processes and hybrid client-side/server-side continuityprocesses, as well as other configurations which will be readilyunderstood in view of the following discussion. Further, whileserver-side continuity process 10 has been shown and described residingon server computer 20 along with first communication server application44, the server-side continuity process may reside on a separate servercomputer. Additionally, for the purpose of the following discussion, thefirst communication application (i.e., first communication serverapplication 44 and first communication client applications 54, 56, 58)will be described as an instant messaging application, and the secondcommunication application (i.e., second communication server application46 and second communication client applications 60, 62, 64) will bedescribed as an email application. However, this is also not intended tobe a limitation of this disclosure, as the continuity process may beequally applicable to other combinations and variations of communicationapplications.

For example, and referring also to FIG. 2, first communication clientapplication 54 (alone or in combination with one or more of continuityprocesses 10, 14) may allow a user (e.g., user 48) to conduct instantmessaging chats with one or more recipients through instant messagingvisual interface 100. When conducting an instant messaging chat, user 48may define a desired recipient, e.g., by selecting, via onscreen pointer102 (which may be controlled by a pointing device such as a mouse; notshown) a desired recipient (e.g., user 50) from buddy list 104,inputting an instant messaging user ID (not shown) or the like. Onceuser 48 has selected user 50 as the desired instant messaging chatrecipient, first communication client application 54 may allow user 48to type desired instant message content in typing pane 106. For example,user 48 may type the message content:

-   -   What are your travel plans for attending the Chicago tradeshow?

The message content input by user 48 may appear in chat pane 108, alongwith the name of the poster (i.e., user 48).

Continuity process 10 may allow the instant message (i.e., “What areyour travel plans for attending the Chicago tradeshow?”) to be sent touser 50 over a communication channel other than an instant messagingcommunication channel. For example, and referring also to FIG. 3,continuity process 10 may monitor 150 a plurality of communicationchannels. In the context of the illustrated example, continuity process10 may monitor 150 a first communication channel (e.g., an instantmessaging communication channel) utilized by first communication serverapplication 44 and first communication client applications 54, 56, 58.Additionally, continuity process 10 may monitor a second communicationchannel (e.g., an email communication channel) utilized by secondcommunication server application 46 and second communication clientapplications 60, 62, 64. Continuity process 10 may similarly monitorvarious other communication channels. Continuity process 10 may detect152 a failed communication channel. As used herein a failedcommunication channel may include a communication channel which isexperiencing an outage and/or a communication channel which is in asaturation state (e.g., resulting in degraded performance). For example,continuity process 10 may detect 152 that the instant messagingcommunication channel (e.g., over which the instant message “What areyour travel plans for attending the Chicago tradeshow?” was to be sent)has failed. In response to detecting 152 a failed communication channel(i.e., the instant messaging communication channel), continuity process10 may generate 154 failover instructions concerning an alternativecommunication channel (e.g., allowing the instant message to be sent touser 50, notwithstanding the failure of the instant messagingcommunication channel). Continuity process 10 may provide 156 thefailover instructions to a plurality of client electronic devices (e.g.,client electronic devices 32, 34, 36), e.g., which may utilize one ofthe plurality of communication channels monitored by continuity process10.

Continuing with the above-stated example, continuity process 10 mayprovide 156 the failover instructions to client electronic device 32,for sending the instant message over the alternative communicationchannel. The failover instructions may include instructions to modify158 a first format message that was configured to be communicated overthe failed communication channel into a second format message that isconfigured to be communicated over the alternative communicationchannel. For example, the instant message may be in an format configuredto be transmitted between instant messaging client applications (e.g.,between first communication client applications 54, 56 via firstcommunication server application 44, which may be an instant messagingserver application) utilizing appropriate instant messaging protocols(e.g., Session Initiation Protocol, “SIP”, or the like). The failoverinstructions may include instructions for continuity process 14 and/orfirst communication client application 54 to modify 158 the instantmessage to create an email including the message “What are your travelplans for attending the Chicago tradeshow?”.

For example, and referring also to FIG. 4, continuity process 14 (aloneor in combination with one or more of first communication clientapplication 54 and/or second communication client application 60, whichmay be an email client application) may generate email message 200.Email message 200 may be configured to be transmitted via an emailcommunication channel (e.g., using Simple Mail Transfer Protocol,“SMTP”, via second communication server application 46, which may be anemail server application), and may include message content 202 (e.g. thebody of the email message). Message content 202 may include the contentof the instant message (i.e., “What are your travel plans for attendingthe Chicago tradeshow?”) created via first communication clientapplication 54. Additionally, email message 200 may include “TO”recipients field 204. Email message 200 may be addressed to user 50(i.e., the intended recipient of the instant message “What are yourtravel plans for attending the Chicago tradeshow?”) in “TO” recipientsfield 204.

The failover instructions may further include instructions to transmit160 the second format message over the alternative communicationchannel. For example, in response to the provided 156 instructions,continuity process 14 (alone or in conjunction with one or more of firstcommunication client application 54 and/or second communication clientapplication 60) may transmit 160 email message 200 to user 50 via secondcommunication server application 46. Email message 200 may betransmitted 160 to user 50 via conventional email protocols (e.g.,Simple Mail Transfer Protocol, “SMTP”). For example, transmitting 160the second format message may include transmitting 160 the second formatmessage by a second messaging application configured to transmit/receivesecond format messages. Accordingly, second communication clientapplication 60 (e.g., which may be an email client application) maytransmit 160 email message 200 to user 50. Additionally/alternatively,continuity process 14, may include an email client application and/ormodule that may transmit 160 email message 200 to user 50.

The failover instructions to transmit 160 the second format message mayinclude instructions to determine 162 a recipient network identificationfor second format messages. The second format message may be transmitted160 to the recipient network identification. For example, user 50'sinstant messaging identification may be different than user 50's emailaddress. In order to transmit 160 email message 200 to user 50,continuity process 14 may determine 162 user 50's email networkidentification (i.e., user 50's email address). One or more ofcontinuity processes 10, 14 may determine 162 user 50's email addressbased upon, for example, information associated with user 50 via buddylist 104 of first communication client application 54 and/or firstcommunication server application 44 (e.g., which may include user 50'sname, instant messaging identification, email address, telephone number,etc.). Additionally/alternatively, one or more of continuity processes10, 14 may determine 162 user 50's email address via a look-up in acorporate directory (not shown), a contacts list associated with secondcommunication client application 60 (e.g., which may be an email clientapplication including a contacts list), or similar source.

The failover instructions may further include instructions to modify 164the second format message to form a transmitted first format message.The transmitted first format message may be based upon, at least inpart, the second format message. For example, the failover instructionsmay cause one or more of continuity process 16, second communicationclient application 62 and/or first communication client application 56(all of which may be executed on laptop computer 34) to modify 164transmitted 160 email message 200 from the email format to an instantmessaging format, e.g., to form an instant message including as messagecontent “What are your travel plans for attending the Chicagotradeshow?”. Email message 200 may include an indicator that the messageis intended for delivery as an instant message (e.g., that the messageoriginated as an instant message and was transmitted 160 via an emailcommunication channel), which may for example, identify email message200 as a second format message to be modified 164 to form a first formatmessage. For example, email message 200 may include embedded dataindicating that the message is intended for delivery as an instantmessage. Various additional and/or alternative indicators may be used,including, but not limited to, text included in the subject line,message body, etc., indicating intended delivery as an instant message,for example.

Continuing with the above stated-example, one or more of continuityprocess 16, second communication client application 62, and/or firstcommunication client application 56 may monitor email received by secondcommunication client application 62 for the presence of an indicatorthat the received email is intended for delivery via instant messaging.Based upon, at least in part, email mail message 200 including anindicator that email is intended to be delivered via instant messaging,one or more of continuity process 16, second communication clientapplication 62, and/or first communication client application 56 maymodify 164 transmitted email message 200 to form an instant messagebased upon, at least in part, transmitted email message 200.

The failover instructions provided 156 by continuity process 10 mayfurther include instructions to pass 166 the modified 164 message to afirst messaging application configured to transmit/receive first formatmessages. Continuing with the above example and referring also to FIG.5, one or more of continuity process 16, second communication clientapplication 62, and/or first communication client application 56 maypass 166 the modified 164 message (e.g., an instant message based upon,at least in part, email message 200) to first communication clientapplication 56 (e.g., which may be an instant messaging clientapplication). First communication client application 56 (alone or inconjunction with one or more of continuity process 16 and/or firstcommunication server application 44) may render instant messaging visualinterface 100. The modified 164 message (i.e., an instant message “Whatare your travel plans for attending the Chicago tradeshow?”) may bedisplayed in chat pane 108. As such, the instant message generated byuser 48 and transmitted via an email communication channel, may bedelivered to user 50 for consumption as an instant message.

As discussed above, in the event of the failure of a communicationchannel (e.g., instant messaging) the use of an alternativecommunication channel (e.g., email) as a failover may result in anincreased burden on the alternative communication channel. The burden onthe alternative communication channel may optionally be controlled bylimiting the messages and/or users for which the alternativecommunication channel may serve as a failover. For example, the use ofthe alternative communication channel as a failover may be limited tomessages marked as having one or more specified priority levels. Forexample, the alternative communication channel may only be used as afailover for messages marked as “high priority”. Similarly, the use ofthe alternative communication channel as a failover may be restricted tousers above a specified position within an organization (e.g.,department head or above). Various other controls may be implemented,depending upon design criteria and user need.

While the foregoing discussion was described in the context of aninstant messaging failed communication channel and an email alternativecommunication channel, such description is intended only for the purposeof illustration, and should not be construed as a limitation of thisdisclosure. The failed communication channel and the alternativecommunication channel may include various different communicationchannels, systems, and protocols. For example, the failed communicationchannel may be an email communication channel, and the first formatmessage may include an email. Similarly, the alternative communicationchannel may be an instant messaging communication channel, and thesecond format message may include an instant message. Various othercommunication systems may similarly be employed consistent with theforegoing disclosure.

As will be appreciated by one skilled in the art, the present inventionmay be embodied as a method, system, or computer program product.Accordingly, the present invention may take the form of an entirelyhardware embodiment, an entirely software embodiment (includingfirmware, resident software, micro-code, etc.) or an embodimentcombining software and hardware aspects that may all generally bereferred to herein as a “circuit,” “module” or “system.” Furthermore,the present invention may take the form of a computer program product ona computer-usable storage medium having computer-usable program codeembodied in the medium.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the present invention has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the invention. Theembodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

Having thus described the invention of the present application in detailand by reference to embodiments thereof, it will be apparent thatmodifications and variations are possible without departing from thescope of the invention defined in the appended claims.

1. A method comprising: monitoring a plurality of communication channelsto detect a failed communication channel; in response to detecting thefailed communication channel, generating, by a continuity processexecuting on a computing device, failover instructions concerning analternative communication channel; and providing the failoverinstructions to one or more client electronic devices, wherein thefailover instructions include instructions for: modifying a first formatmessage that was configured to be communicated over the failedcommunication channel into a second format message that is configured tobe communicated over the alternative communication channel, wherein thesecond format message is based, at least in part, upon the first formatmessage; transmitting the second format message over the alternativecommunication channel; and passing the transmitted first format messageto a first messaging application configured to transmit/receive messagesover the failed communication channel.
 2. The method of claim 1, whereinthe failover instructions further include instructions for modifying thesecond format message to form a transmitted first format message, thetransmitted first format message based upon, at least in part, thesecond format message.
 3. The method of claim 1, wherein the failoverinstructions for transmitting the second format message includeinstructions for transmitting the second format message by a secondmessaging application configured to transmit/receive messages over thealternative communication channel.
 4. The method of claim 1, wherein thefailover instructions for transmitting the second format message includeinstructions for determining a recipient network identification forsecond format messages, and transmitting the second format message tothe recipient network identification.
 5. The method of claim 1, whereinthe first format message includes an instant message.
 6. The method ofclaim 1, wherein the first format message includes an email message. 7.The method of claim 1, wherein the second format message includes aninstant message.
 8. The method of claim 1, wherein the second formatmessage includes an email.
 9. A computer program product comprising: acomputer storage medium having computer usable program code embodiedtherewith, which, when executed by a processor, cause the processor toperform operations comprising: monitoring a plurality of communicationchannels to detect a failed communication channel; in response todetecting the failed communication channel, generating failoverinstructions concerning an alternative communication channel; andproviding the failover instructions to one or more client electronicdevices, wherein the failover instructions include instructions for:modifying a first format message that was configured to be communicatedover the failed communication channel into a second format message thatis configured to be communicated over the alternative communicationchannel, wherein the second format message is based, at least in part,upon the first format message; transmitting the second format messageover the alternative communication channel; and passing the transmittedfirst format message to a first messaging application configured totransmit/receive messages over the failed communication channel.
 10. Thecomputer program product of claim 9, wherein the failover instructionsfurther include instructions for modifying the second format message toform a transmitted first format message, the transmitted first formatmessage based upon, at least in part, the second format message.
 11. Thecomputer program product of claim 9, wherein the failover instructionsfor transmitting the second format message include instructions fortransmitting the second format message by a second messaging applicationconfigured to transmit/receive messages over the alternativecommunication channel.
 12. The computer program product of claim 9,wherein the failover instructions for transmitting the second formatmessage include instructions for determining a recipient networkidentification for second format messages, and transmitting the secondformat message to the recipient network identification.
 13. The computerprogram product of claim 9, wherein the first format message includes aninstant message.
 14. The computer program product of claim 9, whereinthe first format message includes an email message.
 15. The computerprogram product of claim 9, wherein the second format message includesan instant message.
 16. The computer program product of claim 9, whereinthe second format message includes an email.